Server computer networks suitable for enterprise or cloud computing need a scalable server infrastructure to host traditional or distributed applications. In the enterprise model, application instances execute in their respective physical (or virtual) servers and rely on the network to communicate with other applications or network services on other servers. Distributed applications, however, are decomposed and deployed across multiple physical (or virtual) servers. Furthermore, for a cloud infrastructure, multiple distributed applications typically coexist on the same server and network infrastructure.
Because of fast changing capacity and workload demands, a network fabric comprised of switches should be able to scale to larger node counts without impacting the cost per server. Also, a network fabric should exhibit, to the extent possible, symmetrical properties. Specifically, the network throughput achievable between two servers in the infrastructure should not differ materially on the basis of the relative physical location of the servers within a data center.
One of the trends resulting from the above requirements is the application of large multi-stage fabrics to interconnect physical server infrastructure. The topologies associated with these networks are fat trees, or combinations of fat trees with single or dual homed sub-trees at the bottom tier. The innovation associated with such multi-stage and multi-path networks has not extended into the server, neither in terms of path selection nor traffic capabilities. The state of affairs is one where endpoints attach to a network using a single homed or dual homed Ethernet interface with optional capabilities for link aggregation (single media access control (MAC) address shared by multiple links). Server interface selection is based on associating default routes for traffic, and physical interfaces to source IP addresses. Fabric path selection is not explicitly supported by the server, and routing algorithms are generally not extended to the server endpoint.